In general, a storage server is any host device capable of performing storage related functions such as file-based requests and/or block-based requests from clients. Thus, storage servers include storage area network (SAN) devices, network attached storage (NAS) devices, direct attached storage (DAS) devices, etc.
Typically, storage servers are coupled within a storage network or storage system controlled by a storage operating system. The storage operating system implements a file system to logically organize the information as a hierarchical structure of directories and files on, e.g., the disks. The disk storage may be implemented as one or more storage “volumes” that comprise a cluster of physical storage devices (disks) defining an overall logical arrangement of disk space. Each volume is generally associated with its own file system.
A file system may adopt an inode buffer tree data structure and supports protocols such as Network File System (NFS) and Common Internet File System (CIFS) for communication with various types of clients. In such a file system, a file consistency checker checks the complete consistency of all the metadata before it allows clients to access data. The file consistency checker loads and checks all the metadata, i.e., all the inode blocks and indirect blocks of a tree. With the advent of aggregates and flexible volumes due to the increased amount of metadata, consistency check may take a long time, causing unavailability of those volumes to clients.